#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QRegularExpression>
#include <QDateTime>
#include <QMessageBox>
#include <QJsonDocument>
#include <QJsonObject>
#include <QValueAxis>
#include <csignal>  // 添加这个头文件
#include <QNetworkInterface>  // 网络接口相关
#include <QHostAddress>       // IP地址处理
#include <QDebug>


//记录历史任务
void MainWindow::recordShootingHistory(const QString& fitsName, const QString& fitsPath)
{
    QStringList record;
    record << fitsName
           << fitsPath
           << QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss");

    m_shootingHistory.prepend(record); // 新的记录放在前面

    // 更新下拉菜单 (只保留最近100条记录)
    if(m_shootingHistory.size() > 100) {
        m_shootingHistory.removeLast();
    }

    updateHistoryComboBox();
}

//更新下拉菜单
void MainWindow::updateHistoryComboBox()
{
    m_historyComboBox->clear();

    for (const auto& record : m_shootingHistory) {
        QString displayText = QString("%1 | %2 | %3")
        .arg(record[0])  // 文件名
            .arg(QFileInfo(record[1]).fileName()) // 只显示最后一级路径
            .arg(record[2]); // 日期

        m_historyComboBox->addItem(displayText, QVariant(record[1])); // 存储完整路径作为用户数据
    }
}

void MainWindow::onHistorySelected(int index)
{
    if (index >= 0 && index < m_shootingHistory.size()) {
        QStringList record = m_shootingHistory[index];
        QString filePath = record[1] + "/" + record[0];

        // 在DS9中打开选中的文件
        if (ui->checkboxShowFits->isChecked() && QFile::exists(filePath)) {
            launchDS9(filePath);
        }

        // 在状态栏显示完整信息
        QString info = QString("已选择: %1 | 路径: %2 | 拍摄时间: %3")
                           .arg(record[0])
                           .arg(record[1])
                           .arg(record[2]);
        statusBar()->showMessage(info, 5000);
    }
}

// 保存历史记录到文件
void MainWindow::saveHistoryToFile()
{
    QFile file(QApplication::applicationDirPath() + "/shooting_history.ini");
    if (file.open(QIODevice::WriteOnly)) {
        QTextStream out(&file);
        for (const auto& record : m_shootingHistory) {
            out << record.join("|||") << "\n";
        }
    }
}

// 从文件加载历史记录
void MainWindow::loadHistoryFromFile()
{
    QFile file(QApplication::applicationDirPath() + "/shooting_history.ini");
    if (file.open(QIODevice::ReadOnly)) {
        QTextStream in(&file);
        while (!in.atEnd()) {
            QString line = in.readLine();
            m_shootingHistory.append(line.split("|||"));
        }
        updateHistoryComboBox();
    }
}
